package com.ruoyi.labdata.mapper;

import java.util.List;

import com.ruoyi.labdata.domain.LabFlowInstance;

/**
 * 工作流实例Mapper接口
 * 
 * @author winner pan
 * @date 2022-03-11
 */
public interface LabFlowInstanceMapper 
{
    /**
     * 查询工作流实例
     * 
     * @param instanceId 工作流实例ID
     * @return 工作流实例
     */
    public LabFlowInstance selectLabFlowInstanceById(Long instanceId);

    /**
     * 查询工作流实例列表
     * 
     * @param labFlowInstance 工作流实例
     * @return 工作流实例集合
     */
    public List<LabFlowInstance> selectLabFlowInstanceList(LabFlowInstance labFlowInstance);

    /**
     * 新增工作流实例
     * 
     * @param labFlowInstance 工作流实例
     * @return 结果
     */
    public int insertLabFlowInstance(LabFlowInstance labFlowInstance);

    /**
     * 修改工作流实例
     * 
     * @param labFlowInstance 工作流实例
     * @return 结果
     */
    public int updateLabFlowInstance(LabFlowInstance labFlowInstance);

    /**
     * 删除工作流实例
     * 
     * @param instanceId 工作流实例ID
     * @return 结果
     */
    public int deleteLabFlowInstanceById(Long instanceId);

    /**
     * 批量删除工作流实例
     * 
     * @param instanceIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteLabFlowInstanceByIds(Long[] instanceIds);
    
    public int  withDrawLabFlowInstance(Long instanceId);
    
    public List<LabFlowInstance> selectCopyList(LabFlowInstance labFlowInstance);
    public List<LabFlowInstance> selectFinsihedList(LabFlowInstance labFlowInstance);
    
    public List<LabFlowInstance> selectCommittedList(LabFlowInstance labFlowInstance);
    
    public List<LabFlowInstance> selectMyList(LabFlowInstance labFlowInstance);
    
    public int finishLabFlowInstance(LabFlowInstance labFlowInstance);
    
}
